#include<malloc.h>
#include<stdio.h>
#include<string.h>

#define MAX 10

typedef struct{
	char ultimoNome[10];
	char primeiroNome[20];
	char assunto[30];
	char titulo[40];
}ACERVO;

int main(int argc, char** argv){
	
	int i=0, n;
	ACERVO* PAcervo;
	
	printf("\n Digite a quantidade de memoria para reservar: ");
	scanf("%d", &n);
	
	//alocando memória
	PAcervo = (ACERVO*) malloc(n*sizeof(ACERVO));
	
	if(PAcervo == NULL){
		printf("\n Memoria insuficiente para alocacao.");
		return -1;
	}
	
	printf("\n Digite sobrenome do autor: ");
	scanf("%s", PAcervo[i].ultimoNome);
	while((strcmp(strlwr(PAcervo[i].ultimoNome), "fim") != 0) && (i < n)){
		printf("\n Digite o primeiro nome do autor: ");
		scanf("%s", PAcervo[i].primeiroNome);
		printf("\n Digite o assunto: ");
		scanf("%s", PAcervo[i].assunto);
		printf("\n Digite o titulo: ");
		scanf("%s", PAcervo[i].titulo);
		i++;
		system("cls");
		if( i < n) {
			printf("\n Digite o sobrenome do autor. Digite 'fim' para finalizar: ");
			scanf("%s", PAcervo[i].ultimoNome);
		}
	}
	n = i;
	printf("\n\n =========== ACERVO ================\n\n\n");
	for(i = 0; i<n ; i++){
		printf("\n Ultimo Nome: %s", PAcervo[i].ultimoNome);
		printf("\n Primeiro Nome: %s", PAcervo[i].primeiroNome);
		printf("\n Assunto Nome: %s", PAcervo[i].assunto);
		printf("\n Titulo Nome: %s", PAcervo[i].titulo);
		printf("\n ======================");
	}
	return 0;
}